﻿using System;
using System.Text;
using System.Text.RegularExpressions;
using System.IO;
using System.Reflection;
using System.Collections.Generic;

using DreamCube.Foundation.Basic.Utility;
using DreamCube.Foundation.Basic.Objects;
using DC_Office = DreamCube.Framework.Utilities.Office;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            //TestLogWrite.Start();
            //TestOffice.Start();
            //Console.Write(UnHex("fffd","utf-8"));
            //testXML.Start();
            //JM.Write();
            //TestQueryPerformanceCounter.StartTestDic();
            try
            {
                //TestConnectOracle.Connect();
                //TestKillProcess.KillIE();
                //testCopyFile.CopyFile();
                //TestClipboard.TestClipBoard();
                //testPostData.Test();
                //TestInheritance.Test();
                //TestMath.TestRoundEx();
                //Console.WriteLine(Int32.Parse("09"));
                //TestOffice.Start();
                //TestThread.Start();
                //TestRegistry.Start();
                //Console.WriteLine(MyWebsite.MapPath("http://localhost:8225/Projects/GZHCDD/Forms/CLJLB/PrintDoc/封面.doc"));
                //TestOffice.Start();
                //testClass.Test();
                //testStartApp.Test();
                //testWinService.Start();
                //testLog.Test();
                //testIP.Test();
                //TestOffice.Start();
                //testJSON.Start();
                //testReturnFinally.Start();
                //Console.Write(MySecurity.Decrypt("yh2uuttSKrbsucYj7c8yeg=="));
                
                Console.WriteLine("测试完毕");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                DreamCube.Foundation.Basic.Utility.MyLog.MakeLog(ex);
            }
            Console.Read();
        }

        ///<summary>
        /// 从16进制转换成汉字
        /// </summary>
        /// <param name="hex"></param>
        /// <param name="charset">编码,如"utf-8","gb2312"</param>
        /// <returns></returns>
        public static string UnHex(string hex, string charset)
        {
            if (hex == null)
                throw new ArgumentNullException("hex");
            hex = hex.Replace(",", "");
            hex = hex.Replace("\n", "");
            hex = hex.Replace("\\", "");
            hex = hex.Replace(" ", "");
            if (hex.Length % 2 != 0)
            {
                hex += "20";//空格
            }
            // 需要将 hex 转换成 byte 数组。 
            byte[] bytes = new byte[hex.Length / 2];

            for (int i = 0; i < bytes.Length; i++)
            {
                try
                {
                    // 每两个字符是一个 byte。 
                    bytes[i] = byte.Parse(hex.Substring(i * 2, 2),
                    System.Globalization.NumberStyles.HexNumber);
                }
                catch
                {
                    // Rethrow an exception with custom message. 
                    throw new ArgumentException("hex is not a valid hex number!", "hex");
                }
            }
            System.Text.Encoding chs = System.Text.Encoding.GetEncoding(charset);
            return chs.GetString(bytes);
        }
    }
}
